package com.smart.community.parking.service;

import com.smart.community.commons.result.PageResult;
import com.smart.community.parking.dto.ParkingLotDTO;
import com.smart.community.parking.dto.ParkingLotQueryDTO;
import com.smart.community.parking.vo.ParkingLotVO;
import com.smart.community.parking.vo.ParkingLotStatusVO;

/**
 * 停车场服务接口
 * 
 * @author Wu.Liang
 * @since 2024-12-21
 */
public interface IParkingLotService {

    /**
     * 分页查询停车场列表
     * 
     * @param queryDTO 查询条件
     * @param userId 用户ID
     * @return 停车场列表
     */
    PageResult<ParkingLotVO> getParkingLotList(ParkingLotQueryDTO queryDTO, Long userId);

    /**
     * 根据ID查询停车场
     * 
     * @param id 停车场ID
     * @param userId 用户ID
     * @return 停车场信息
     */
    ParkingLotVO getParkingLot(Long id, Long userId);

    /**
     * 创建停车场
     * 
     * @param parkingLotDTO 停车场信息
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean createParkingLot(ParkingLotDTO parkingLotDTO, Long userId);

    /**
     * 更新停车场
     * 
     * @param id 停车场ID
     * @param parkingLotDTO 停车场信息
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean updateParkingLot(Long id, ParkingLotDTO parkingLotDTO, Long userId);

    /**
     * 删除停车场
     * 
     * @param id 停车场ID
     * @param userId 用户ID
     * @return 是否成功
     */
    boolean deleteParkingLot(Long id, Long userId);

    /**
     * 获取停车场实时状态
     * 
     * @param id 停车场ID
     * @param userId 用户ID
     * @return 停车场状态
     */
    ParkingLotStatusVO getParkingLotStatus(Long id, Long userId);
} 